package com.fcc.wfly.entitlement.hal;

import com.fasterxml.jackson.annotation.JsonProperty;
import org.springframework.hateoas.ResourceSupport;

import java.util.HashMap;
import java.util.Map;

public class ObligationClientInfoJson extends ResourceSupport {

	private Map<String, Object> embedded = new HashMap<String, Object>();
	private String serialNumber;
	private String productID;
	private String shipToCountry;
	private String entitlementCheckDate;
	private String productDescription;
	private String errorMessage;
	private String existsIndicator;

	/**
	 * @return the serialNumber
	 */
	public String getSerialNumber() {
		return serialNumber;
	}

	/**
	 * @param serialNumber
	 *            the serialNumber to set
	 */
	public void setSerialNumber(String serialNumber) {
		this.serialNumber = serialNumber;
	}

	/**
	 * @return the productID
	 */
	public String getProductID() {
		return productID;
	}

	/**
	 * @param productID
	 *            the productID to set
	 */
	public void setProductID(String productID) {
		this.productID = productID;
	}

	/**
	 * @return the shipToCountry
	 */
	public String getShipToCountry() {
		return shipToCountry;
	}

	/**
	 * @param shipToCountry
	 *            the shipToCountry to set
	 */
	public void setShipToCountry(String shipToCountry) {
		this.shipToCountry = shipToCountry;
	}

	/**
	 * @return the entitlementCheckDate
	 */
	public String getEntitlementCheckDate() {
		return entitlementCheckDate;
	}

	/**
	 * @param entitlementCheckDate
	 *            the entitlementCheckDate to set
	 */
	public void setEntitlementCheckDate(String entitlementCheckDate) {
		this.entitlementCheckDate = entitlementCheckDate;
	}

	/**
	 * @return the productDescription
	 */
	public String getProductDescription() {
		return productDescription;
	}

	/**
	 * @param productDescription
	 *            the productDescription to set
	 */
	public void setProductDescription(String productDescription) {
		this.productDescription = productDescription;
	}

	/**
	 * @return the errorMessage
	 */
	public String getErrorMessage() {
		return errorMessage;
	}

	/**
	 * @param errorMessage
	 *            the errorMessage to set
	 */
	public void setErrorMessage(String errorMessage) {
		this.errorMessage = errorMessage;
	}

	/**
	 * @return the existsIndicator
	 */
	public String getExistsIndicator() {
		return existsIndicator;
	}

	/**
	 * @param existsIndicator
	 *            the existsIndicator to set
	 */
	public void setExistsIndicator(String existsIndicator) {
		this.existsIndicator = existsIndicator;
	}

	@JsonProperty("_embedded")
	public Map<String, Object> getEmbedded() {
		return embedded;
	}

	public void embedContract(Object resource) {
		embedded.put("contract", resource);
	}

	public void embedCarepack(Object resource) {
		embedded.put("carepack", resource);
	}

	public void embedWarranty(Object resource) {
		embedded.put("warranty", resource);
	}

}